home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
AmigActive 10
/
AACD 10.iso
/
AACD
/
Magazine
/
Morphos
/
GCC
/
ppc-amigaos
/
include
/
mgl
/
gl.h
< prev
next >
Wrap
C/C++ Source or Header
|
2000-01-22
|
26KB
|
645 lines
/*
* $Id: gl.h,v 1.6 2000/01/16 20:47:09 hfrieden Exp $
*
* $Author: hfrieden $
*
* $Date: 2000/01/16 20:47:09 $
* $Revision: 1.6 $
*
* (C) 1999 by Hyperion Software
* All rights reserved
*
* This file is part of the MiniGL library project
* See the file Licence.txt for more details
*
*/
#ifndef GL_H_
#define GL_H_
#ifdef __cplusplus
extern "C"
{
#endif
#ifdef __PPC__
#define mykprintf kprintf
#endif
#include "mgl/config.h"
#include "log.h"
#ifndef NLOGGING
extern int MGLDebugLevel;
#define mglSetDebugLevel(level) \
MGLDebugLevel = level
#endif
/*
GL types
*/
typedef void GLvoid;
typedef unsigned char GLboolean;
typedef char GLbyte;
typedef unsigned char GLubyte;
typedef short GLshort;
typedef unsigned short GLushort;
typedef int GLint;
typedef unsigned int GLuint;
typedef long GLsizei;
typedef unsigned long GLbitfield;
typedef float GLfloat;
typedef double GLdouble;
typedef float GLclampf;
typedef double GLclampd;
typedef int GLenum;
/*
GL enum
Currently a dummy
*/
enum
{
GL_BASE = 0,
GL_ALPHA,
GL_ALPHA8,
GL_ALPHA_BITS,
GL_ALPHA_SCALE,
GL_ALPHA_TEST,
GL_ALPHA_TEST_FUNC,
GL_ALPHA_TEST_REF,
GL_ALWAYS,
GL_AUX_BUFFERS,
GL_BACK,
GL_BACK_LEFT,
GL_BACK_RIGHT,
GL_BLEND,
GL_BLEND_DST,
GL_BLEND_SRC,
GL_BLUE,
GL_BLUE_BITS,
GL_BYTE,
GL_C3F_V3F,
GL_C4UB_V2F,
GL_C4UB_V3F,
GL_CCW,
GL_COLOR_ARRAY,
GL_COLOR_ARRAY_POINTER,
GL_COLOR_ARRAY_SIZE,
GL_COLOR_ARRAY_STRIDE,
GL_COLOR_ARRAY_TYPE,
GL_COLOR_CLEAR_VALUE,
GL_COLOR_INDEX,
GL_CULL_FACE,
GL_CULL_FACE_MODE,
GL_CURRENT_COLOR,
GL_CURRENT_INDEX,
GL_CURRENT_TEXTURE_COORDS,
GL_CW,
GL_DECAL,
GL_DEPTH_BITS,
GL_DEPTH_CLEAR_VALUE,
GL_DEPTH_COMPONENT,
GL_DEPTH_FUNC,
GL_DEPTH_RANGE,
GL_DEPTH_SCALE,
GL_DEPTH_TEST,
GL_DEPTH_WRITEMASK,
GL_DITHER,
GL_DONT_CARE,
GL_DOUBLE,
GL_DOUBLEBUFFER,
GL_DRAW_BUFFER,
GL_DST_ALPHA,
GL_DST_COLOR,
GL_EDGE_FLAG,
GL_EDGE_FLAG_ARRAY,
GL_EDGE_FLAG_ARRAY_POINTER,
GL_EDGE_FLAG_ARRAY_STRIDE,
GL_EQUAL,
GL_EXTENSIONS,
GL_FASTEST,
GL_FLAT,
GL_FLOAT,
GL_FOG,
GL_FOG_COLOR,
GL_FOG_DENSITY,
GL_FOG_END,
GL_FOG_HINT,
GL_FOG_INDEX,
GL_FOG_MODE,
GL_FOG_START,
GL_FRONT_AND_BACK,
GL_FRONT,
GL_FRONT_FACE,
GL_FRONT_LEFT,
GL_FRONT_RIGHT,
GL_GEQUAL,
GL_GREATER,
GL_GREEN,
GL_GREEN_BITS,
GL_INDEX_ARRAY,
GL_INDEX_ARRAY_POINTER,
GL_INDEX_ARRAY_STRIDE,
GL_INDEX_ARRAY_TYPE,
GL_INDEX_BITS,
GL_INDEX_CLEAR_VALUE,
GL_INDEX_MODE,
GL_INT,
GL_INTENSITY,
GL_INTENSITY8,
GL_INVALID_ENUM,
GL_INVALID_OPERATION,
GL_INVALID_VALUE,
GL_LEFT,
GL_LEQUAL,
GL_LESS,
GL_LINEAR,
GL_LINEAR_MIPMAP_LINEAR,
GL_LINEAR_MIPMAP_NEAREST,
GL_LINES,
GL_LINE_LOOP,
GL_LINE_STRIP,
GL_LUMINANCE,
GL_LUMINANCE8,
GL_LUMINANCE8_ALPHA8,
GL_LUMINANCE_ALPHA,
GL_MATRIX_MODE,
GL_MAX_TEXTURE_SIZE,
GL_MAX_VIEWPORT_DIMS,
GL_MODELVIEW,
GL_MODELVIEW_MATRIX,
GL_MODELVIEW_STACK_DEPTH,
GL_MODULATE,
GL_NEVER,
GL_NEAREST,
GL_NEAREST_MIPMAP_NEAREST,
GL_NEAREST_MIPMAP_LINEAR,
GL_NICEST,
GL_NONE,
GL_NOTEQUAL,
GL_NO_ERROR,
GL_ONE,
GL_ONE_MINUS_DST_ALPHA,
GL_ONE_MINUS_DST_COLOR,
GL_ONE_MINUS_SRC_ALPHA,
GL_ONE_MINUS_SRC_COLOR,
GL_OUT_OF_MEMORY,
GL_PACK_ALIGNMENT,
GL_PACK_LSB_FIRST,
GL_PACK_ROW_LENGTH,
GL_PACK_SKIP_PIXELS,
GL_PACK_SKIP_ROWS,
GL_PACK_SWAP_BYTES,
GL_PERSPECTIVE_CORRECTION_HINT,
GL_POINTS,
GL_POLYGON_MODE,
GL_POLYGON_OFFSET,
GL_POLYGON_OFFSET_FACTOR,
GL_POLYGON_OFFSET_FILL,
GL_POLYGON_OFFSET_LINE,
GL_POLYGON_OFFSET_POINT,
GL_POLYGON_OFFSET_UNITS,
GL_POLYGON,
GL_PROJECTION,
GL_PROJECTION_MATRIX,
GL_PROJECTION_STACK_DEPTH,
GL_QUADS,
GL_QUAD_STRIP,
GL_READ_BUFFER,
GL_RED,
GL_RED_BITS,
GL_RENDERER,
GL_REPLACE,
GL_REPEAT,
GL_RGB,
GL_RGB5,
GL_RGB5_A1,
GL_RGB8,
GL_RGBA,
GL_RGBA8,
GL_RGBA_MODE,
GL_RIGHT,
GL_SCISSOR_BOX,
GL_SCISSOR_TEST,
GL_SHADE_MODEL,
GL_SHORT,
GL_SMOOTH,
GL_SRC_ALPHA,
GL_SRC_ALPHA_SATURATE,
GL_SRC_COLOR,
GL_STACK_OVERFLOW,
GL_STACK_UNDERFLOW,
GL_STEREO,
GL_T2F_C3F_V3F,
GL_T2F_C4UB_V3F,
GL_T2F_V3F,
GL_TABLE_TOO_LARGE,
GL_TEXTURE_2D,
GL_TEXTURE_2D_BINDING,
GL_TEXTURE_COORD_ARRAY,
GL_TEXTURE_COORD_ARRAY_SIZE,
GL_TEXTURE_COORD_ARRAY_STRIDE,
GL_TEXTURE_COORD_ARRAY_TYPE,
GL_TEXTURE_DOOR_ARRAY_POINTER,
GL_TEXTURE_ENV,
GL_TEXTURE_ENV_COLOR,
GL_TEXTURE_ENV_MODE,
GL_TEXTURE_MAG_FILTER,
GL_TEXTURE_MIN_FILTER,
GL_TEXTURE_PRIORITY,
GL_TEXTURE_WRAP_S,
GL_TEXTURE_WRAP_T,
GL_TEXTURE_GEN_S,
GL_TEXTURE_GEN_T,
GL_TRIANGLES,
GL_TRIANGLE_FAN,
GL_TRIANGLE_STRIP,
GL_UNPACK_ALIGNMENT,
GL_UNPACK_LSB_FIRST,
GL_UNPACK_ROW_LENGTH,
GL_UNPACK_SKIP_PIXELS,
GL_UNPACK_SKIP_ROWS,
GL_UNPACK_SWAP_BYTES,
GL_UNSIGNED_BYTE,
GL_UNSIGNED_INT,
GL_UNSIGNED_SHORT,
GL_V2F,
GL_V3F,
GL_VENDOR,
GL_VERSION,
GL_VERTEX_ARRAY,
GL_VERTEX_ARRAY_POINTER,
GL_VERTEX_ARRAY_SIZE,
GL_VERTEX_ARRAY_STRIDE,
GL_VERTEX_ARRAY_TYPE,
GL_VIEWPORT,
GL_ZERO,
GL_POINT_SMOOTH,
GL_CLAMP,
GL_EXP,
GL_EXP2,
GL_TEXTURE_GEN_MODE,
GL_SPHERE_MAP,
GL_T,
GL_S,
GL_FILL,
#ifdef AUTOMATIC_LOCKING_ENABLE
MGL_LOCK_AUTOMATIC,
MGL_LOCK_MANUAL,
MGL_LOCK_SMART,
#endif
MGL_FLATFAN,
MGL_PERSPECTIVE_MAPPING,
MGL_W_ONE_HINT,
MGL_Z_OFFSET
};
#define GL_COLOR_BUFFER_BIT 0x00000001
#define GL_DEPTH_BUFFER_BIT 0x00000002
#define GL_TRUE 1
#define GL_FALSE 0
#define MGL_BUTTON_LEFT 0x00000001
#define MGL_BUTTON_RIGHT 0x00000002
#define MGL_BUTTON_MID 0x00000004
typedef struct MGLColor_t
{
GLfloat r,g,b,a;
} MGLColor;
typedef struct MGLNormal_t
{
GLfloat x,y,z;
} MGLNormal;
#include "mgl/vertexbuffer.h"
#include "mgl/context.h"
#include "mgl/clip.h"
/*
The current context is refered to as an extern variable, which
is a pointer to the context.
*/
extern GLcontext mini_CurrentContext;
#ifndef GLNDEBUG
#define GLASSERT(c) assert(c)
#define dprintf(x) printf x
#else
#define GLASSERT(c)
#define dprintf(x)
#endif
#ifndef GL_NOERRORCHECK
extern int kprintf(char *, ...);
#define GLFlagError(context,c,err) while ((c)) {\
context->CurrentError = err;\
kprintf("GLError: %ld at %s:%ld\n", (int)err, __FILE__,(int)__LINE__);\
return;\
}
#else
#define GLFlagError(context,c,err)
#endif
/*
Prototypes and appropriate defines
These are derived from the OpenGL manpages
Some defines are duplicated with EXT suffix, to be compatible.
Additionally, some of these may not be needed (Maybe glBegin).
There may also be a problem with floating point parameters for
certain compilers. May be addressed in the macros.
*/
void GLAlphaFunc(GLcontext context, GLenum func, GLclampf ref);
//GLboolean GLAreTexturesResident(GLcontext context, GLsizei n, const GLuint *textures, GLboolean *residences);
//void GLArrayElement(GLcontext context, GLint i);
void GLBegin(GLcontext context, GLenum mode);
void GLBindTexture(GLcontext context, GLenum target, GLuint texture);
void GLBlendFunc(GLcontext context, GLenum sfactor, GLenum dfactor);
void GLClear(GLcontext context, GLbitfield mask);
void GLClearColor(GLcontext context, GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
void GLClearDepth(GLcontext context, GLclampd depth);
void GLColor3fv(GLcontext context, GLfloat *v);
void GLColor3ubv(GLcontext context, GLubyte *v);
void GLColor4f(GLcontext context, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
void GLColor4fv(GLcontext context, GLfloat *v);
void GLColor4ub(GLcontext context, GLubyte red, GLubyte green, GLubyte blue, GLubyte alhpa);
void GLColor4ubv(GLcontext context, GLubyte *v);
//void GLColorPointer(GLcontext context, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
void GLCullFace(GLcontext context, GLenum mode);
void GLDeleteTextures(GLcontext context, GLsizei n, const GLuint *textures);
void GLDepthFunc(GLcontext context, GLenum func);
void GLDepthMask(GLcontext context, GLboolean flag);
void GLDepthRange(GLcontext context, GLclampd n, GLclampd f);
//void GLDisableClientState(GLcontext context, GLenum cap);
//void GLDrawArrays(GLcontext context, GLenum mode, GLint first, GLsizei count);
void GLDrawBuffer(GLcontext context, GLenum mode);
//void GLDrawElements(GLcontext context, GLenum mode, GLsizei count, GLenum type, const GLvoid *indices);
//void GLEdgeFlag(GLcontext context, GLboolean flag);
//void GLEdgeFlagPointer(GLcontext context, GLsizei stride, const GLboolean *flags);
//void GLEdgeFlagv(GLcontext context, const GLboolean *flag);
//void GLEnableClientState(GLcontext context, GLenum cap);
void GLEnd(GLcontext context);
void GLFinish(GLcontext context);
void GLFlush(GLcontext context);
void GLFogf(GLcontext context, GLenum pname, GLfloat param);
void GLFogfv(GLcontext context, GLenum pname, GLfloat *param);
void GLFrontFace(GLcontext context, GLenum mode);
void GLFrustum(GLcontext context, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
void GLGenTextures(GLcontext context, GLsizei n, GLuint *textures);
//void GLGetBooleanv(GLcontext context, GLenum pname, GLboolean *params);
//void GLGetDoublev(GLcontext context, GLenum pname, GLdouble *params);
GLenum GLGetError(GLcontext context);
void GLGetFloatv(GLcontext context, GLenum pname, GLfloat *params);
void GLGetIntegerv(GLcontext context, GLenum pname, GLint *params);
void GLGetPointerv(GLcontext context, GLenum pname, GLvoid* *params);
const GLubyte* GLGetString(GLcontext context, GLenum name);
void GLHint(GLcontext context, GLenum target, GLenum mode);
//void GLIndexi(GLcontext context, GLint c);
//void GLIndexiv(GLcontext context, const GLint *c);
//void GLIndexPointer(GLcontext context, GLenum type, GLsizei stride, const GLvoid *pointer);
//void GLInterleavedArrays(GLcontext context, GLenum format, GLsizei stride, const GLvoid *pointer);
//GLboolean GLIsEnabled(GLcontext context, GLenum cap);
//GLboolean GLIsTexture(GLcontext context, GLuint texture);
void GLLoadIdentity(GLcontext context);
void GLLoadMatrixd(GLcontext context, const GLdouble *m);
void GLLoadMatrixf(GLcontext context, const GLfloat *m);
void GLMatrixMode(GLcontext context, GLenum mode);
void GLMultMatrixd(GLcontext context, const GLdouble *m);
void GLMultMatrixf(GLcontext context, const GLfloat *m);
void GLNormal3f(GLcontext context, GLfloat x, GLfloat y, GLfloat z);
void GLOrtho(GLcontext context, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
void GLPixelStorei(GLcontext context, GLenum pname, GLint param);
void GLPolygonMode(GLcontext context, GLenum face, GLenum mode);
//void GLPolygonOffset(GLcontext context, GLfloat factor, GLfloat units);
void GLPopMatrix(GLcontext context);
//void GLPrioritizeTextures(GLcontext context, GLsizei n, const GLuint *textures, const GLclampf *priorities);
void GLPushMatrix(GLcontext context);
//void GLReadBuffer(GLcontext context, GLenum mode);
void GLReadPixels(GLcontext context, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels);
void GLRotated(GLcontext context, GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
void GLRotatef(GLcontext context, GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
void GLScaled(GLcontext context, GLdouble x, GLdouble y, GLdouble z);
void GLScalef(GLcontext context, GLfloat x, GLfloat y, GLfloat z);
void GLScissor(GLcontext context, GLint x, GLint y, GLsizei width, GLsizei height);
void GLShadeModel(GLcontext context, GLenum mode);
void GLTexCoord2f(GLcontext context, GLfloat s, GLfloat t);
void GLTexCoord2fv(GLcontext context, GLfloat *v);
//void GLTexCoordPointer(GLcontext context, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
void GLTexEnvi(GLcontext context, GLenum target, GLenum pname, GLint param);
void GLTexGeni(GLcontext context, GLenum coord, GLenum mode, GLenum map);
void GLTexImage2D(GLcontext context, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
void GLTexParameteri(GLcontext context, GLenum target, GLenum pname, GLint param);
void GLTexSubImage2D(GLcontext context, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
void GLTranslated(GLcontext context, GLdouble x, GLdouble y, GLdouble z);
void GLTranslatef(GLcontext context, GLfloat x, GLfloat y, GLfloat z);
void GLVertex3fv(GLcontext context, GLfloat *v);
void GLVertex4f(GLcontext context, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
void GLVertex4fv(GLcontext context, GLfloat *v);
//void GLVertexPointer(GLcontext context, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
void GLViewport(GLcontext context, GLint x, GLint y, GLsizei width, GLsizei height);
void mglChooseNumberOfBuffers(int number);
void mglChoosePixelDepth(int depth);
void mglChooseTextureBufferSize(int size);
void mglChooseVertexBufferSize(int size);
void * MGLCreateContext(int offx, int offy, int w, int h);
void MGLDeleteContext(GLcontext context);
void MGLEnableSync(GLcontext context, GLboolean enable);
void MGLExit(GLcontext context);
void * MGLGetWindowHandle(GLcontext context);
void MGLIdleFunc(GLcontext context, IdleFn i);
void MGLKeyFunc(GLcontext context, KeyHandlerFn k);
GLboolean MGLLockDisplay(GLcontext context);
void MGLMainLoop(GLcontext context);
void MGLMouseFunc(GLcontext context, MouseHandlerFn m);
void mglProhibitAlphaFallback(GLboolean flag);
void mglProhibitMipMapping(GLboolean flag);
void mglProposeCloseDesktop(GLboolean closeme);
void MGLResizeContext(GLcontext context, GLsizei width, GLsizei height);
void MGLSetState(GLcontext context, GLenum cap, GLboolean state);
void MGLSpecialFunc(GLcontext context, SpecialHandlerFn s);
void MGLSwitchBuffer(GLcontext context, int bufnr);
void MGLSwitchDisplay(GLcontext context);
void MGLTexMemStat(GLcontext context, GLint *Current, GLint *Peak);
void MGLUnlockDisplay(GLcontext context);
void MGLWriteShotPPM(GLcontext context, char *filename);
void MGLInit(void);
void MGLTerm(void);
#ifdef AUTOMATIC_LOCKING_ENABLE
void MGLLockMode(GLcontext context, GLenum lockMode);
#endif
void MGLPrintMatrix(GLcontext context, int mode);
void MGLPrintMatrixStack(GLcontext context, int mode);
void MGLSetZOffset(GLcontext context, GLfloat offset);
/*
** These macros define the OpenGL compatibility macros. If you don't want them,
** define NO_GL_MACROS before including this file. In this case, you might
** define the USE_GL_INLINES to include static inline functions that do the same.
*/
#ifdef NO_GL_MACROS
#ifdef USE_GL_INLINES
#include "mgl/minigl.h"
#endif
#else
#define glAlphaFunc(func, ref) GLAlphaFunc(mini_CurrentContext, func, ref)
#define glAreTexturesResident(n, textures, residences) GLAreTexturesResident(mini_CurrentContext, n, textures, residences)
#define glArrayElement(i) GLArrayElement(mini_CurrentContext, i)
#define glArrayElementEXT(i) GLArrayElement(mini_CurrentContext, i)
#define glBegin(mode) GLBegin(mini_CurrentContext, mode)
#define glEnd() GLEnd(mini_CurrentContext)
#define glTexGeni(coord,mode,map) GLTexGeni(mini_CurrentContext, coord, mode, map)
#define glBindTexture(target, texture) GLBindTexture(mini_CurrentContext, target, texture)
#define glBlendFunc(sfactor, dfactor) GLBlendFunc(mini_CurrentContext, sfactor, dfactor)
#define glClear(mask) GLClear(mini_CurrentContext, mask)
#define glClearColor(red, green, blue, alpha) GLClearColor(mini_CurrentContext, red, green, blue, alpha)
#define glClearDepth(depth) GLClearDepth(mini_CurrentContext, depth)
#define glColorPointer(size, type, stride, pointer) GLColorPointer(mini_CurrentContext, size, type, stride, pointer)
#define glColorPointerEXT(size, type, stride, pointer) GLColorPointer(mini_CurrentContext, size, type, stride, pointer)
#define glCullFace(mode) GLCullFace(mini_CurrentContext, mode)
#define glDeleteTextures(n, textures) GLDeleteTextures(mini_CurrentContext, n, textures)
#define glDepthFunc(func) GLDepthFunc(mini_CurrentContext, func)
#define glDepthMask(flag) GLDepthMask(mini_CurrentContext, flag)
#define glEnable(cap) MGLSetState(mini_CurrentContext, cap, GL_TRUE)
#define glDisable(cap) MGLSetState(mini_CurrentContext, cap, GL_FALSE)
#define glDisableClientState(cap) GLDisableClientState(mini_CurrentContext, cap)
#define glEnableClientState(cap) GLEnableClienState(mini_CurrentContext, cap)
#define glDrawArrays(mode, first, count) GLDrawArrays(mini_CurrentContext, mode, first, count)
#define glDrawArraysEXT(mode, first, count) GLDrawArrays(mini_CurrentContext, mode, first, count)
#define glDrawBuffer(mode) GLDrawBuffer(mini_CurrentContext, mode)
#define glDrawElements(mode, count, type, indices) GLDrawElements(mini_CurrentContext, mode, count, type, indices)
#define glEdgeFlag(flag) GLEdgeFlag(mini_CurrentContext, flag)
#define glEdgeFlagv(flag) GLEdgeFlagv(mini_CurrentContext, flag)
#define glEdgeFlagPointer(stride, flags) GLEdgeFlagPointer(mini_CurrentContext, stride, flags)
#define glEdgeFlagPointerEXT(stride, flags) GLEdgeFlagPointer(mini_CurrentContext, stride, flags)
#define glFinish() GLFinish(mini_CurrentContext)
#define glFlush() GLFlush(mini_CurrentContext)
#define glFogf(pname, param) GLFogf(mini_CurrentContext, pname, param)
#define glFogfv(pname, param) GLFogfv(mini_CurrentContext, pname, param)
#define glFogi(pname, param) glFogf(pname, (GLfloat)param)
#define glFrontFace(mode) GLFrontFace(mini_CurrentContext, mode)
#define glFrustum(left, right, bottom, top, zNear, zFar) GLFrustum(mini_CurrentContext, left, right, bottom, top, zNear, zFar)
#define glGenTextures(n, textures) GLGenTextures(mini_CurrentContext, n, textures)
#define glGetError() GLGetError(mini_CurrentContext)
#define glGetBooleanv(pname, params) GLGetBooleanv(mini_CurrentContext, pname, params);
#define glGetDoublev(pname, params) GLGetDoublev(mini_CurrentContext, pname, params)
#define glGetFloatv(pname, params) GLGetFloatv(mini_CurrentContext, pname, params)
#define glGetIntegerv(pname, params) GLGetIntegerv(mini_CurrentContext, pname, params)
#define glGetPointerv(pname, params) GLGetPointerv(mini_CurrentContext, pname, params)
#define glGetPointervEXT(pname, params) GLGetPointerv(mini_CurrentContext, pname, params)
#define glGetString(name) GLGetString(mini_CurrentContext, name)
#define glHint(target, mode) GLHint(mini_CurrentContext, target, mode)
#define glIndexi(c) GLIndexi(mini_CurrentContext, c)
#define glIndexiv(c) GLIndexfv(mini_CurrentContext, c)
#define glIndexPointer(type, stride, pointer) GLIndexPointer(mini_CurrentContext, type, stride, pointer)
#define glIndexPointerEXT(type, stride, pointer) GLIndexPointer(mini_CurrentContext, type, stride, pointer)
#define glInterleavedArrays(format, stride, pointer) GLInterleavedArrays(mini_CurrentContext, format, stride, pointer)
#define glIsEnabled(cap) GLIsEnabled(mini_CurrentContext, cap)
#define glIsTexture(texture) GLIsTexture(mini_CurrentContext, texture)
#define glLoadIdentity() GLLoadIdentity(mini_CurrentContext)
#define glLoadMatrixf(m) GLLoadMatrixf(mini_CurrentContext, m)
#define glLoadMatrixd(m) GLLoadMatrixd(mini_CurrentContext, m)
#define glMatrixMode(mode) GLMatrixMode(mini_CurrentContext, mode)
#define glMultMatrixd(m) GLMultMatrixd(mini_CurrentContext, m)
#define glMultMatrixf(m) GLMultMatrixf(mini_CurrentContext, m)
#define glOrtho(left, right, bottom, top, zNear, zFar) GLOrtho(mini_CurrentContext, left, right, bottom, top, zNear, zFar)
#define glPixelStorei(pname, param) GLPixelStorei(mini_CurrentContext, pname, param)
#define glPixelStoref(pname, param) GLPixelStorei(mini_CurrentContext, pname, (int)(param))
#define glPolygonMode(face, mode) GLPolygonMode(mini_CurrentContext, face, mode)
#define glPolygonOffset(factor, units) GLPolygonOffset(mini_CurrentContext, factor, units)
#define glPushMatrix() GLPushMatrix(mini_CurrentContext)
#define glPopMatrix() GLPopMatrix(mini_CurrentContext)
#define glPrioritizeTextures(n, textures, pri) GLPrioritizeTextures(mini_CurrentContext, n, textures, pri)
#define glReadBuffer(mode) GLReadBuffer(mini_CurrentContext, mode)
#define glReadPixels(x, y, width, height, format, type, pixels) GLReadPixels(mini_CurrentContext, x, y, width, height, format, type, pixels)
#define glRotated(angle, x, y, z) GLRotated(mini_CurrentContext, angle, x, y, z)
#define glRotatef(angle, x, y, z) GLRotatef(mini_CurrentContext, (angle), (x), (y), (z))
#define glScaled(x, y, z) GLScaled(mini_CurrentContext, x, y, z)
#define glScalef(x, y, z) GLScaled(mini_CurrentContext, (GLdouble)(x), (GLdouble)(y), (GLdouble)(z))
#define glScissor(x, y, w, h) GLScissor(mini_CurrentContext, x, y, w, h)
#define glShadeModel(mode) GLShadeModel(mini_CurrentContext, mode)
#define glTexCoord2f(s, t) GLTexCoord2f(mini_CurrentContext, s, t)
#define glTexCoord2fv(v) GLTexCoord2fv(mini_CurrentContext, v)
#define glTexCoordPointer(size, type, stride, pointer) GLTexCoordPointer(mini_CurrentContext, size, type, stride, pointer)
#define glTexCoordPointerEXT(size, type, stride, pointer) GLTexCoordPointer(mini_CurrentContext, size, type, stride, pointer)
#define glTexImage2D(target, level, internal, width, height, border, format, type, pixels) GLTexImage2D(mini_CurrentContext, target, level, internal, width, height, border, format, type, pixels)
#define glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels) GLTexSubImage2D(mini_CurrentContext, target, level, xoffset, yoffset, width, height, format, type, pixels)
#define glTranslated(x, y, z) GLTranslated(mini_CurrentContext, x, y, z)
#define glTranslatef(x, y, z) GLTranslatef(mini_CurrentContext, x, y, z)
#define glViewport(x, y, width, height) GLViewport(mini_CurrentContext, x, y, width, height)
#define glVertex4f(x,y,z,w) GLVertex4f(mini_CurrentContext, x,y,z,w)
#define glVertex2f(x,y) GLVertex4f(mini_CurrentContext, x,y, 0.f, 1.f)
#define glVertex2i(x,y) GLVertex4f(mini_CurrentContext, (GLfloat)x, (GLfloat)y, 0.f, 1.f)
#define glVertex3f(x,y,z) GLVertex4f(mini_CurrentContext, x,y,z, 1.f)
#define glVertex3fv(v) GLVertex3fv(mini_CurrentContext, v);
#define glVertexPointer(size, type, stride, pointer) GLVertexPointer(mini_CurrentContext, size, type, stride, pointer)
#define glVertexPointerEXT(size, type, stride, pointer) GLVertexPointer(mini_CurrentContext, size, type, stride, pointer)
#define glDepthRange(n,f) GLDepthRange(mini_CurrentContext, n,f)
#define mglCreateContext(offx, offy, w, h) mini_CurrentContext = MGLCreateContext(offx, offy, w,h)
#define mglResizeContext(width, height) MGLResizeContext(mini_CurrentContext, width, height)
#define mglSwitchBuffer(bufnr) MGLSwitchBuffer(mini_CurrentContext, bufnr)
#define mglDeleteContext() MGLDeleteContext(mini_CurrentContext)
#define mglGetWindowHandle() MGLGetWindowHandle(mini_CurrentContext)
#define mglSwitchDisplay() MGLSwitchDisplay(mini_CurrentContext)
#define mglLockDisplay() MGLLockDisplay(mini_CurrentContext)
#define mglUnlockDisplay() MGLUnlockDisplay(mini_CurrentContext)
#define glColor4f(red, green, blue, alpha) GLColor4f(mini_CurrentContext, red, green, blue, alpha)
#define glColor4fv(v) GLColor4fv(mini_CurrentContext, v)
#define glColor3f(red,green,blue) GLColor4f(mini_CurrentContext, red, green, blue, 1.0)
#define glColor3fv(v) GLColor3fv(mini_CurrentContext,v)
#define glColor4ub(r,g,b,a) GLColor4ub(mini_CurrentContext, r,g,b,a)
#define glColor4ubv(v) GLColor4ubv(mini_CurrentContext, v)
#define glColor3ub(r,g,b) GLColor4ub(mini_CurrentContext, r,g,b,255)
#define glColor3ubv(v) GLColor4ub(mini_CurrentContext, v)
#define glNormal3f(x,y,z) GLNormal3f(mini_CurrentContext, x,y,z)
#define glTexEnvi(target, pname, param) GLTexEnvi(mini_CurrentContext, target, pname, param)
#define glTexEnvf(target, pname, param) GLTexEnvi(mini_CurrentContext, target, pname, (GLint)param)
#define glTexEnviv(target, pname, param) glTexEnvi(target, pname, *(param))
#define glTexEnvfv(target, pname, param) glTexEnvi(target, pname, (GLint)(*(param)))
#define glTexParameteri(target, pname, param) GLTexParameteri(mini_CurrentContext, target, pname, param)
#define glTexParameterf(target, pname, param) glTexParameteri(target, pname, (GLint)param)
#define glTexParameteriv(target, pname, param) glTexParameteri(target, pname, *(param))
#define glTexParameterfv(target, pname, param) glTexParameteri(target, pname, (GLint)*(param))
#define mglEnableSync(enable) MGLEnableSync(mini_CurrentContext, enable)
#define mglWriteShotPPM(filename) MGLWriteShotPPM(mini_CurrentContext, filename)
#define mglTexMemStat(Current, Peak) MGLTexMemStat(mini_CurrentContext, Current, Peak)
#ifdef AUTOMATIC_LOCKING_ENABLE
#define mglLockMode(lockMode) MGLLockMode(mini_CurrentContext, lockMode)
#endif
#define mglKeyFunc(k) MGLKeyFunc(mini_CurrentContext, k)
#define mglSpecialFunc(s) MGLSpecialFunc(mini_CurrentContext, s)
#define mglMouseFunc(m) MGLMouseFunc(mini_CurrentContext, m)
#define mglIdleFunc(i) MGLIdleFunc(mini_CurrentContext, i)
#define mglExit() MGLExit(mini_CurrentContext)
#define mglMainLoop() MGLMainLoop(mini_CurrentContext)
#ifndef GLNDEBUG
#define mglPrintMatrix(mode) MGLPrintMatrix(mini_CurrentContext, mode)
#define mglPrintMatrixStack(mode) MGLPrintMatrixStack(mini_CurrentContext, mode)
#endif
#endif
#ifdef __cplusplus
}
#endif
#endif